The present invention relates generally to methods and systems for providing services in communications networks, and more particularly to a method of and system for processing requests for services in a telecommunications network.
In the public switched telephone network, calls among subscribers who are connected to different end offices are routed via trunk lines, and sometimes through intermediate tandem switching offices and interexchange switches as well. Traditionally, a call is routed based upon a portion of the dialed number. For example, in the United States, a local dialed number consists of seven digits, of which the first three digits (the so-called xe2x80x9cNXXxe2x80x9d portion) identifies the destination exchange.
When a caller picks up a telephone receiver, the caller becomes actively connected to an end office, as evidenced by a dial tone. After a caller dials a destination telephone number, the end office receiving the digits, i.e., the originating exchange, examines the dialed number to extract the destination exchange. If the destination exchange is different from the originating exchange, the call must be routed toward the destination exchange over one of the many trunk groups connected to the originating exchange. In order to direct a call along an appropriate trunk group leading to the correct destination exchange, a routing table is configured within each switch. The routing table contains a preset list of trunk groups pertaining to each destination exchange. The routing table is consulted to map the logical intent of reaching the destination number through the physical reality of which trunk lines connect to which other switches.
Commonly, the routing table contains an ordered list of preferred and alternate trunk groups for each destination exchange. For example, a preferred trunk group may be those directly connected to the destination exchange whereas alternate trunk groups might connect indirectly through tandem switches. In the course of routing a call, a preferred trunk group will be searched first for an available line and channel. If no available lines and channels are found within the preferred trunk group, then an alternate trunk group will be searched for available lines. A fixed number of trunk groups is searched in the preference order recorded in the routing table.
The contents of each routing table and each switch in a network is dependent upon the topology of the network and must be changed if nodes are added, deleted, or logically rearranged. Moreover, the routing tables are interpreted locally and populated differently for each switch. Changes must be coordinated among all switches to keep the network functioning properly. Any time an NXX or switch is added or the telephone network is otherwise logically rearranged, then the contents of every routing table and every switch in every network must be updated in a coordinated fashion. In the U.S., a private sector entity maintains a local exchange routing guide upon which all network owners base their routing tables.
Although the traditional routing table approach has sufficed for traditional telephone use under normal conditions, it has become inadequate to accommodate new types of services and traffic. The traditional routing table approach is based upon the assumptions of slow change and network configuration and homogeneity among both traffic types and network paths. More specifically, the traditional routing table approach is inflexible. The traditional routing table approach is cumbersome to maintain and it cannot accommodate rapid changes in the network configuration, such as those arising from network growth, or sudden changes in traffic, such as those arising from emergencies and the like. The traditional routing table approach does not provide an opportunity to perform intelligent routing on a per-call basis and it cannot take into account other factors such as class of services, bandwidth, or priority associated with the originator or the network service being invoked. Instead, the route selection algorithm is implicit in the routing tables and is specified in a very constrained manner by the organization of data in the tables. Moreover, the traditional routing table approach does not lend itself to the rapid implementation of new services.
U.S. Pat. No. 5,226,075 discloses a method and apparatus by which a telephone call is routed differently through an interexchange network based upon called number, calling number, and origination data such as a requested class of service. A database is used to map these parameters into a destination switch number. A call might be routed differently, even to different terminating switches, based upon the dialed number or, at best, a bandwidth or quality level as inferred for a given call. The system of the ""075 patent is directed by the relatively fixed contents of database tables. The database tables take into account only a few origination parameters, can choose only from a relatively few different paths, and can take actions only as preplanned by whoever populates the database tables. Changes to the physical network may require re-engineering of the contents of the tables.
The approach of the ""075 patent cannot optimize the path subject to instantaneous changes in the network or based upon per-resource cost metrics. More generally, the ""075 patent continues to confound service and addressing functions within a single database. As in traditional telephony, there is no recognition of the need to segregate service logic and addressing data. Furthermore, the approach of the ""075 patent cannot effectively serve new types of traffic or services that may require flexible allocation of intervening resources, such as store-and-forward devices.
There is a need for a flexible routing technique in a telecommunications network that encompasses more than a fixed mapping of numbers to trunk groups, or a fixed mapping of origination information to network resources. A new routing technique is required that takes into account many factors in routing a call and it can be applied in a multi-purpose communications network, rather than just for telephony.
The present invention provides a method of and a system for providing services in a communications network. The system includes a service processing function, a universal directory function, and a resource manager. The service processing function receives service requests, formulates requests for interworking functions based upon service requests, and formulates resource requests based upon service requests and interworking functions. The universal directory function receives logical addresses from the service processing function and returns interworking functions based upon addresses. The resource manager receives resource requests and allocates resources to the service processing function in response to resource requests. The resource manager accesses and updates a resource database that includes an entry corresponding to each network resource managed by the resource manager.
Each entry of the resource database includes a resource identifier, a set of static attributes, and a set of dynamic attributes. A resource identifier uniquely identifies a resource. Static attributes are relatively stable data about the type and configuration of the resource. Dynamic attributes are changing data about the resource that are tracked by the resource manager, including such data as whether the resource is being used, and if so, by whom. If a resource is allocated, the dynamic attribute of the resources will include an indicator on how to find the priority of the allocation. This is because the priority of an allocation could be dynamic, i.e., the function owning a resource may assign varying priority during the duration of the allocation, or static, i.e., the priority is determined at allocation time and is fixed, so that it can be stored in the resource.
A resource request includes a selection function. The resource manager uses the selection function to search the attributes of the resource database to locate a set of candidate resources. The selection function may be used to search both the static attributes and the dynamic attributes. A selection function preferably includes a priority criterion, which indicates the priority level assigned to the request or requester. If the requestor""s priority criterion is higher than the priority attribute of an allocated resource, that resource is deemed to be eligible for selection.
A resource request also includes an evaluation function. The resource manager uses the evaluation function to evaluate the attributes of the set of candidate resources to determine a best candidate resource. The resource manager sorts or ranks the candidate resources according to the evaluation function. The resource manager allocates the best candidate resource to the requesting service processing function and indicates the identity and priority of the requesting service processing function. The resource manager then configures the best candidate in preparation for fulfilling the request.
Preferably, the evaluation function ranks un-allocated candidate resources higher than allocated candidate resources. However, occasionally the best candidate may already be allocated to a lower priority service processing function. In those situations, the resource manager de-allocates the best candidate resource and notifies the earlier service processing function that its use of the resource has been preempted. Then the resource manager reconfigures the resource and allocates the resource to the higher priority service processing function.
Every resource manager has a domain, which is the set of resources managed by the resource manager. The domain of a nodal resource manager is the set of resources available to a network node, as the network is currently configured. The system of the present invention may include a network resource manager, whose domain is all connective resources of the network. The network resource manager can reconfigure the network and allocate additional network resources to a nodal resource manager. In the event a nodal resource manager cannot satisfy a resource request, the nodal resource manager may request additional resources from the network resource manager.